package com.hskn.hss.module.kfkanalyse.service;

import com.hskn.hss.exception.HssException;
import com.hskn.hss.module.kfkanalyse.entity.vo.car.WorkRuleItem;
import com.hskn.hss.module.kfkbadge.entity.KfkBadge;
import com.hskn.hss.module.kfkcarlocation.entity.KfkCarLocation;
import com.hskn.hss.module.kfkdtu.entity.KfkDtu;
import com.hskn.hss.module.kfkinterphone.entity.KfkInterphone;
import com.hskn.hss.module.kfkworkcard.entity.KfkWorkCard;
import com.hskn.hss.module.tlcar.entity.TlCar;

import java.text.ParseException;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author hskn
 * @since 2021-05-25
 */
public interface IkfkAnalyseService {
    void KfkDtuAnalyse(KfkDtu kfkDtu);

    void KfkCarStayAnalyse(KfkCarLocation kfkCarLocation) throws ParseException;

    void KfkInterphoneStayAnalyse(KfkInterphone kfkInterphone) throws ParseException;

    void KfkWorkcardStayAnalyse(KfkWorkCard kfkWorkCard) throws ParseException;

    void KfkCarSpeedAnalyse(KfkCarLocation kfkCarLocation) throws ParseException, HssException;

//    void KfkCarOilAnalyse(KfkCarLocation kfkCarLocation) throws ParseException, HssException;

    void KfkCarDriverAlarmAnalyse(KfkCarLocation kfkCarLocation) throws ParseException, HssException;

    // 人员离岗
    void personQuitJob();

    // 人员聚众
    void personGathering();

    // 人员停留
    void personStay();

    // 车辆作业违规分析入口
    void carViolation(TlCar car, KfkCarLocation kfkCarLocation);

    // 车辆停留
    void carStay();

    // 车辆空驶
    void carInvalidDrive();

    // 车辆作业遗留
    void carWorkLeaveOver();

    // 车辆速度限制
    void carSpeedLimit(String carId, WorkRuleItem rule, Integer speed);

    // 车辆水量监测
    void carWaterMonitor();

    // 车辆油量检测
    void carOilMonitor();

    // 车辆离岗
    void carQuitJob();

    // 车辆晚到
    void carLate();

    // 车辆未到岗
    void carHooky();

    // 车辆超时未完成
    void carTimeoutUndone();

    // 车辆非法倾倒
    void carIllegalDump();

    // 人员出勤
    void personAttendance();
}
